<?php
/*
 * Copyright (c) 2017-2025 Tencent. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
namespace TencentCloud\Billing\V20180709\Models;
use TencentCloud\Common\AbstractModel;

/**
 * DescribeAllocationUnitDetail response structure.
 *
 * @method integer getId() Obtain ID of a cost allocation unit.
 * @method void setId(integer $Id) Set ID of a cost allocation unit.
 * @method string getUin() Obtain Associated UIN of the cost allocation unit.
 * @method void setUin(string $Uin) Set Associated UIN of the cost allocation unit.
 * @method string getName() Obtain Specifies the name of a cost allocation unit.
 * @method void setName(string $Name) Set Specifies the name of a cost allocation unit.
 * @method integer getParentId() Obtain Cost allocation unit parent node ID.
 * @method void setParentId(integer $ParentId) Set Cost allocation unit parent node ID.
 * @method string getSourceName() Obtain Source organization name.
 * @method void setSourceName(string $SourceName) Set Source organization name.
 * @method string getSourceId() Obtain Source organization ID.
 * @method void setSourceId(string $SourceId) Set Source organization ID.
 * @method string getRemark() Obtain Specifies remark description.
 * @method void setRemark(string $Remark) Set Specifies remark description.
 * @method string getTreeNodeUniqKey() Obtain Cost allocation unit identifier.
 * @method void setTreeNodeUniqKey(string $TreeNodeUniqKey) Set Cost allocation unit identifier.
 * @method integer getRuleId() Obtain If a cost allocation unit is set with an collection rule, return the collection rule ID. if no collection rule is set, do not return.
 * @method void setRuleId(integer $RuleId) Set If a cost allocation unit is set with an collection rule, return the collection rule ID. if no collection rule is set, do not return.
 * @method string getRequestId() Obtain The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
 * @method void setRequestId(string $RequestId) Set The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
 */
class DescribeAllocationUnitDetailResponse extends AbstractModel
{
    /**
     * @var integer ID of a cost allocation unit.
     */
    public $Id;

    /**
     * @var string Associated UIN of the cost allocation unit.
     */
    public $Uin;

    /**
     * @var string Specifies the name of a cost allocation unit.
     */
    public $Name;

    /**
     * @var integer Cost allocation unit parent node ID.
     */
    public $ParentId;

    /**
     * @var string Source organization name.
     */
    public $SourceName;

    /**
     * @var string Source organization ID.
     */
    public $SourceId;

    /**
     * @var string Specifies remark description.
     */
    public $Remark;

    /**
     * @var string Cost allocation unit identifier.
     */
    public $TreeNodeUniqKey;

    /**
     * @var integer If a cost allocation unit is set with an collection rule, return the collection rule ID. if no collection rule is set, do not return.
     */
    public $RuleId;

    /**
     * @var string The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
     */
    public $RequestId;

    /**
     * @param integer $Id ID of a cost allocation unit.
     * @param string $Uin Associated UIN of the cost allocation unit.
     * @param string $Name Specifies the name of a cost allocation unit.
     * @param integer $ParentId Cost allocation unit parent node ID.
     * @param string $SourceName Source organization name.
     * @param string $SourceId Source organization ID.
     * @param string $Remark Specifies remark description.
     * @param string $TreeNodeUniqKey Cost allocation unit identifier.
     * @param integer $RuleId If a cost allocation unit is set with an collection rule, return the collection rule ID. if no collection rule is set, do not return.
     * @param string $RequestId The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
     */
    function __construct()
    {

    }

    /**
     * For internal only. DO NOT USE IT.
     */
    public function deserialize($param)
    {
        if ($param === null) {
            return;
        }
        if (array_key_exists("Id",$param) and $param["Id"] !== null) {
            $this->Id = $param["Id"];
        }

        if (array_key_exists("Uin",$param) and $param["Uin"] !== null) {
            $this->Uin = $param["Uin"];
        }

        if (array_key_exists("Name",$param) and $param["Name"] !== null) {
            $this->Name = $param["Name"];
        }

        if (array_key_exists("ParentId",$param) and $param["ParentId"] !== null) {
            $this->ParentId = $param["ParentId"];
        }

        if (array_key_exists("SourceName",$param) and $param["SourceName"] !== null) {
            $this->SourceName = $param["SourceName"];
        }

        if (array_key_exists("SourceId",$param) and $param["SourceId"] !== null) {
            $this->SourceId = $param["SourceId"];
        }

        if (array_key_exists("Remark",$param) and $param["Remark"] !== null) {
            $this->Remark = $param["Remark"];
        }

        if (array_key_exists("TreeNodeUniqKey",$param) and $param["TreeNodeUniqKey"] !== null) {
            $this->TreeNodeUniqKey = $param["TreeNodeUniqKey"];
        }

        if (array_key_exists("RuleId",$param) and $param["RuleId"] !== null) {
            $this->RuleId = $param["RuleId"];
        }

        if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) {
            $this->RequestId = $param["RequestId"];
        }
    }
}
